package cn.yh.register.user.service;

import cn.yh.register.model.user.UserInfo;
import cn.yh.register.vo.user.LoginVo;
import cn.yh.register.vo.user.UserAuthVo;
import cn.yh.register.vo.user.UserInfoQueryVo;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.Map;

public interface UserInfoService extends IService<UserInfo> {
    /**
     * 用户登录
     * @param loginVo  登录信息
     * @return 认证成功的信息
     */
    Map<String,Object> logo(LoginVo loginVo);

    /**
     * 用户认证接口
     * @param userId 用户ID
     * @param userAuthVo 认证信息
     */

    void userAuth(Long userId, UserAuthVo userAuthVo);

    /**
     * 获取用户信息
     * @param userId  用户ID
     * @return 用户信息
     */
    UserInfo getUserInfo(Long userId);

    /**
     * 分页查询用户列表
     * @param page 分页参数
     * @param queryVo 查询条件
     * @return 用户列表
     */
    Page<UserInfo> findByPage(Page<UserInfo> page, UserInfoQueryVo queryVo);

    /**
     * 启用/禁用
     * @param userId 用户id
     * @param status 用户状态
     */

    void lock(Long userId,Integer status);

    /**
     * 查询用户信息
     * @param userId 用户id
     * @return 用户信息 & 就诊人信息
     */
    Map<String,Object> showUser(Long userId);

    /**
     * 认证审批
     * @param userId 用户id
     * @param authStatus 认证状态
     */
    void approval(Long userId,Integer authStatus);



}
